home *** CD-ROM | disk | FTP | other *** search
-
-
- ⌃
-
- ⌃
-
- åRequirements
-
-
-
- The current version of the Help on Wheels developer’s kit is available only
-
- for use with MPW C and C++. MPW Pascal developers can use the kit with
-
- a little work, since it uses Pascal calling conventions. The next version
-
- will support Think C projects.
-
-
-
- Help on Wheels uses several Toolbox managers which are new to System
-
- 7, such as the Alias Manager, the Process Manager, and the Apple Event
-
- Manager. Therefore, it does not work under System 6 or earlier
-
- versions, and any attempt to register a client will be met with an error
-
- code. (Later versions of Help on Wheels and its client interface library
-
- will operate under System 6 in a reduced mode, where the server deals
-
- only with help files and does not talk back to clients.)
-
-
- To be a client of the help server, an application must be System 7
-
- friendly. This is because the client engine and server converse using
-
- Apple events. Once you set the bit in your application’s 'SIZE' resource to
-
- allow this behavior, Finder assumes that you support the Required suite of
-
- events. These events, Open Application, Open Documents, Print
-
- Documents, and Quit Application, are fully documented in Inside
-
- Macintosh, Volume VI, and elsewhere. Beyond that, Help on Wheels
-
- requires no special knowledge of Apple events.
-
-
- Client applications should be able to receive events while running in the
-
- background. This is not a requirement, and foreground-only applications
-
- can still receive Help events, because the server always brings the client
-
- into the foreground before sending a Help event.
-
-
- For consistency, your application should support two methods of invoking
-
- help. First, it should add one or more entries to the Help menu which the
-
- user can select to get help on the entire application or on a specific topic.
-
- Second, it should react to the Help key (ASCII character value 5) and
-
- Command-? key combination (for keyboards which lack a Help key) in all
-
- modes, including dialogs, and in a context-sensitive fashion, displaying a
-
- topic relevant to what the user is seeing.
-
-
- NOTE: Modal dialogs disable entries you place in the Help menu, and they
-
- also prevent the client engine from bringing the server to the foreground
-
- when the user presses the Help key. The HoWSample source code contains
-
- a sample modal dialog filter procedure which automatically hides and
-
- unhides modal dialogs so that this is not a problem.
-
-
- If your help file is separate from your application file, you are
-
- responsible for keeping track of its movements between sessions; the
-
- server keeps track during sessions. One good way is to locate the help
-
- file at registration time by resolving an alias record which is relative to
-
- your application file. You should store this alias record as a resource in
-
- your application file, and keep an updated version in your preferences file
-
- from session to session. While resolving this alias record, you should be
-
- careful to specify no user interaction, so the user won’t see an
-
- AppleShare password dialog if operating with a borrowed preferences
-
- file. (If this all sounds confusing, take heart. The utility function
-
- HoWFindHelpFile in the HoWLib interface library takes care of this entire
-
- procedure, and the HoWSample source code shows how to call it.) To
-
- create such an alias record while building your application, ask Finder to
-
- make an alias to the help file, and pull the contained alias resource into
-
- your application file using Rez. If the help file is in a different folder from
-
- the application file, you should first move the alias to the application
-
- file’s folder, then do a “Find Original” on it to force Finder to update its
-
- relativity data. You should also do a “Find Original” to update the alias
-
- whenever the help file’s creation date changes. (Again, the HoWSample
-
- source code and Make file shows how to do all this.) If you don’t like the
-
- approach of using alias records to track the help file, you can either
-
- merge the help data into the application, or keep it separate and tell your
-
- users not to move one file without the other.
-
-
-
-